/**
 * 
 */
package main;

import Utils.Concurrent.TaskPool;
import Utils.Gameplay.qGenerator;
import Utils.connections.ConnectionPool;
import gamePlay.AbsGame;
import gui.GUI_manager;
import DBside.DataBase;
import DBside.QuestionQueryOperator;
import datatype.User;

/**
 * @author Yuval
 *
 * -------------------- information -------------------------
 * -	here we have the items that the application			- 
 * -	need while running, all the threads pool			-
 * -	connection pool, the user instance					-
 * -	the game and question generator, and also the gui 	-
 * -	every thread and process can access them and use	-
 * -	if he needs to.										-
 * ---------------------------------------------------------- 		
 */
public class Session {
	
	public static User user = null;
	public static DataBase DB = new DataBase();
	public static qGenerator quest = new qGenerator(new QuestionQueryOperator());
	public static AbsGame game = null;
	public static ConnectionPool connectionPool;
	public static TaskPool<Object> pool = new TaskPool<Object>(10);
	public static TaskPool<Object> poolForLogin = new TaskPool<Object>(2);
	public static TaskPool<Object> poolTheQuestions = new TaskPool<Object>(2);
	public static TaskPool<Object> poolForSearch = new TaskPool<Object>(5);
	public static GUI_manager gui;

}
